package pe.gob.reniec.cel.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import pe.gob.reniec.cel.model.Persona;

/**
 * 
 *
 * @author Lennon Shimokawa
 */
//@Repository
public class PersonaDaoJdbc extends SimpleJdbcDaoSupport implements PersonaDao {

    /**
     * Inyeccion por constructor
     * 
     * @param dataSource
     */
    @Autowired
    public PersonaDaoJdbc(DataSource dataSource) {
        setDataSource(dataSource);
    }

    public Persona consultarPorDni(String dni) {
        logger.debug("Inicio consultarPorDni");
        return getSimpleJdbcTemplate().queryForObject("select * from persona where dni=?",
                new PersonaRowMapper(), dni);
    }

    class PersonaRowMapper implements ParameterizedRowMapper<Persona> {

        public Persona mapRow(ResultSet rs, int i) throws SQLException {
            Persona persona = new Persona();
            persona.setDni(rs.getString("DNI"));
            persona.setNombre(rs.getString("NOMBRE"));
            persona.setApellidoPaterno(rs.getString("APELLIDO_PATERNO"));
            persona.setApellidoMaterno(rs.getString("APELLIDO_MATERNO"));
            return persona;
        }
    }
}
